package com.ruoyi.student.mapper;

import java.util.List;
import com.ruoyi.student.domain.TGrade;
import com.ruoyi.student.domain.vo.TGradeVo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * 年级Mapper接口
 * 
 * @author ruoyi
 * @date 2023-08-15
 */
public interface TGradeMapper 
{
    /**
     * 查询年级
     * 
     * @param id 年级主键
     * @return 年级
     */
    public TGrade selectTGradeById(Long id);

    /**
     * 查询年级列表
     * 
     * @param tGrade 年级
     * @return 年级集合
     */
    public List<TGrade> selectTGradeList(TGrade tGrade);

    /**
     * 查询年级列表
     *
     * @param tGrade 年级
     * @return 年级集合
     *  <where>
     *             <if test="gradeName != null  and gradeName != ''"> and grade_name like concat('%', #{gradeName}, '%')</if>
     *             <if test="creatorId != null "> and creator_id = #{creatorId}</if>
     *             <if test="validFlag != null "> and valid_flag = #{validFlag}</if>
     *         </where>
     */
//    @Select(

//                    "where "
//    )
    public List<TGradeVo> selectTGradeVoList(@Param("gradeName") String gradeName,@Param("creatorId") Long creatorId,
                                             @Param("validFlag") Integer validFlag);

    /**
     * 新增年级
     * 
     * @param tGrade 年级
     * @return 结果
     */
    public int insertTGrade(TGrade tGrade);

    /**
     * 修改年级
     * 
     * @param tGrade 年级
     * @return 结果
     */
    public int updateTGrade(TGrade tGrade);

    /**
     * 删除年级
     * 
     * @param id 年级主键
     * @return 结果
     */
    public int deleteTGradeById(Long id);

    /**
     * 批量删除年级
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTGradeByIds(Long[] ids);
}
